﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using SIGERP_Entidades;
using System.Data;

namespace SIGERP_Datos
{
    public class HndIntervencion
    {
        public static List<Intervencion> DevolverIntervervencionesPorReclamo(Reclamo rec)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.intervencion WHERE id_reclamo=" + rec.id);
            var intervenciones = new List<Intervencion>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                Intervencion i = new Intervencion(dtRow);
                i.departamento = HndDepartamento.getOne(Convert.ToInt32(dtRow["id_departamento"]));
                i.reclamo = HndReclamos.GetOne(Convert.ToInt32(dtRow["id_reclamo"]));
                i.usuario = HndUsuario.getOne(Convert.ToInt32(dtRow["id_usuario"]));
                intervenciones.Add(i);
            }
            return intervenciones;
        }

        public static void Insert(Intervencion i)
        {
            SqlCommand comando = new SqlCommand();

            comando.CommandText = "INSERT INTO dbo.intervencion (id_intervencion, id_reclamo, id_usuario, fecha, descripcion, id_departamento) " +
            " VALUES (@id_intervencion, @id_reclamo,@id_usuario, GETDATE(), @descripcion, @id_departamento)";
            comando.Parameters.AddWithValue("@id_intervencion", getNextId());
            comando.Parameters.AddWithValue("@id_reclamo", i.reclamo.id);
            comando.Parameters.AddWithValue("@id_usuario", i.usuario.id);
            comando.Parameters.AddWithValue("@descripcion", i.descripcion);
            comando.Parameters.AddWithValue("@id_departamento", i.departamento.id);


            Conexion.ejecutaComando(comando);
        }

        private static int getNextId()
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT MAX(id_intervencion) as id FROM sigerp.dbo.intervencion");
            DataRow dtRow = tabla.Rows[0];

            int id = 0;
            try
            {
                id = Convert.ToInt32(dtRow["id"]);
            }
            catch
            {

            }
            return id + 1;
        }
    }
}
